home *** CD-ROM | disk | FTP | other *** search
- program TstToken;
-
- {$APPTYPE CONSOLE}
-
- uses
- SysUtils,
- Classes,
- AAChrStm,
- AAPasTok in 'AAPasTok.pas';
-
-
- var
- F : TFileStream;
- InF : TaaInCharStream;
- T : system.text;
- PrevType : TaaPascalToken;
- TokenType : TaaPascalToken;
- Token : string;
- Count : integer;
- begin
- F := nil;
- InF := nil;
- try
- F := TFileStream.Create('aapastok.pas', fmOpenRead or fmShareDenyWrite);
- InF := TaaInCharStream.Create(F);
-
- System.Assign(T, 'c:\zzpastok.pas');
- System.Rewrite(T);
- try
- Count := 0;
- PrevType := ptEndOfFile;
- aaGetToken(InF, TokenType, Token);
- while (TokenType <> ptEndOfFile) do begin
- case TokenType of
- ptKeyword, ptIdentifier, ptNumber :
- begin
- if (PrevType = ptKeyWord) or
- (PrevType = ptIdentifier) or
- (PrevType = ptNumber) then begin
- write(T, ' ');
- inc(Count);
- end;
- write(T, Token);
- inc(Count, length(Token));
- end;
- ptString :
- begin
- write(T, Token);
- inc(Count, length(Token));
- end;
- ptComma :
- begin
- write(T, ',');
- inc(Count);
- end;
- ptSemicolon :
- begin
- write(T, ';');
- inc(Count);
- end;
- ptColon :
- begin
- write(T, ':');
- inc(Count);
- end;
- ptPeriod :
- begin
- write(T, '.');
- inc(Count);
- end;
- ptRange :
- begin
- write(T, '..');
- inc(Count, 2);
- end;
- ptEquals :
- begin
- write(T, '=');
- inc(Count);
- end;
- ptNotEquals :
- begin
- write(T, '<>');
- inc(Count, 2);
- end;
- ptLess :
- begin
- write(T, '<');
- inc(Count);
- end;
- ptLessEqual :
- begin
- write(T, '<=');
- inc(Count, 2);
- end;
- ptGreater :
- begin
- write(T, '>');
- inc(Count);
- end;
- ptGreaterEqual :
- begin
- write(T, '>=');
- inc(Count, 2);
- end;
- ptAssign :
- begin
- write(T, ':=');
- inc(Count, 2);
- end;
- ptOpenParen :
- begin
- write(T, '(');
- inc(Count);
- end;
- ptCloseParen :
- begin
- write(T, ')');
- inc(Count);
- end;
- ptOpenBracket :
- begin
- write(T, '[');
- inc(Count);
- end;
- ptCloseBracket :
- begin
- write(T, ']');
- inc(Count);
- end;
- ptCaret :
- begin
- write(T, '^');
- inc(Count);
- end;
- ptHash :
- begin
- write(T, '#');
- inc(Count);
- end;
- ptAddress :
- begin
- write(T, '@');
- inc(Count);
- end;
- ptPlus :
- begin
- write(T, '+');
- inc(Count);
- end;
- ptMinus :
- begin
- write(T, '-');
- inc(Count);
- end;
- ptMultiply :
- begin
- write(T, '*');
- inc(Count);
- end;
- ptDivide :
- begin
- write(T, '/');
- inc(Count);
- end;
- end;
- if (Count >= 70) then begin
- writeln(T);
- Count := 0;
- end;
- if (TokenType <> ptComment) then
- PrevType := TokenType;
- aaGetToken(InF, TokenType, Token);
- end;
-
- finally
- System.Close(T);
- end;
- finally
- InF.Free;
- F.Free;
- end;
- end.
-